
typedef int ElemType;

struct CircleListNode{
    ElemType node_data;
    struct CircleListNode *next_node;
};
typedef struct CircleListNode CrcLiNode;

struct CircleList{
    CrcLiNode *list_head;
    unsigned int list_length;
};
typedef struct CircleList CrcList;

int InitList(CrcList *List);
int ListEmpty(CrcList List);
int ClearList(CrcList *List);
int GetElem(CrcList List,unsigned int i,ElemType *e);
int LocateElem(CrcList List,ElemType e);
int ListInsert(CrcList *List,unsigned int i,ElemType e);
int ListDelete(CrcList *List,unsigned int i,ElemType *e);